package com.atbeijing.bigdata.spark.core.acc

import org.apache.spark.{SparkConf, SparkContext}

object Spark02_Var_Acc {

    def main(args: Array[String]): Unit = {
        val conf = new SparkConf().setMaster("local").setAppName("Acc")
        val sc = new SparkContext(conf)
        val rdd = sc.makeRDD(List(1,2,3,4),2)
        //  Spark自带了一些累加器，可以直接使用
        var sum = sc.longAccumulator("sum")
        //sc.doubleAccumulator()
        //sc.collectionAccumulator()
        // word-count
        rdd.foreach(
            num => {
                //使用累加器
                sum.add(num)
            }
        )
        //获取累加器的值
        println(sum.value)//10
        sc.stop()
    }
}
